#pragma once
#include "yzrutil.h"


namespace yzrilyzr_lang{
	EBCLASS(Math){
	public:

	Math()=delete;

	static constexpr const double PI=3.141592653589793;
	static constexpr const double E=2.718281828459045;
	static constexpr const double TAU=2.0 * PI;
	static constexpr const double PIDIV2=PI/2.0;
	static constexpr const double DEGREES_TO_RADIANS=0.017453292519943295;
	static constexpr const double RADIANS_TO_DEGREES=57.29577951308232;

	template<typename TT>
	static const TT & max(const TT &a, const TT &b){
		return a > b?a:b;
	}
	template<typename TT>
	static const TT & min(const TT &a, const TT &b){
		return a < b?a:b;
	}
	};
}